package laboratorio3;

/**
 *
 * @author SOPHIA MENDEZ
 */
import java.util.Stack;

public class PostfixB implements iCalculadora {
    Stack <String> pilaA = new Stack ();
    Stack <String> pilaB = new Stack ();
    Stack <String> pilaC = new Stack ();
    
public PostfixB(){
}

public void push(String operando){
pilaA.push(operando);
}
public void operar(){
    int numPila2=0;
    while(pilaA.empty()==false){
        String operador= pilaA.pop();
        
        if(operador.equals("+")){
            while(numPila2>=2){
            int num1=Integer.parseInt(pilaB.pop());
            int num2=Integer.parseInt(pilaB.pop());
            int total= num1 + num2;
            pilaB.push(Integer.toString(total));
            numPila2--;
            }
        }

            else if(operador.equals("-")){
                    while(numPila2>=2){
                        int num1=Integer.parseInt(pilaB.pop());
                        int num2=Integer.parseInt(pilaB.pop());
                        int total= num1 - num2;
                        pilaB.push(Integer.toString(total));
                        numPila2--;
                }
            }    

                else if(operador.equals("*")){
                   while(numPila2>=2){
                       int num1=Integer.parseInt(pilaB.pop());
                       int num2=Integer.parseInt(pilaB.pop());
                       int total= num1 * num2;
                       pilaB.push(Integer.toString(total));
                       numPila2--;
                   } 
                } 

                    else if(operador.equals("/")){
                    while(numPila2>=2){
                        int num1=Integer.parseInt(pilaB.pop());
                        int num2=Integer.parseInt(pilaB.pop());
                        int total= num1 / num2;
                        pilaB.push(Integer.toString(total));
                        numPila2--;
                    }        
                    }

                        else{
                        try{
                            int numero=Integer.parseInt(operador);
                            pilaB.push(operador);
                            numPila2++;
                        }
                        catch(Exception e){
                        }
                        }
         }
    //todo sera enviado a la pila C, donde se almacenan los resultados de cada linea
    pilaC.push(pilaB.pop());
}

    public void imprimirPila(){
    while(pilaC.empty()==false){
    System.out.println(pilaC.pop());
    }
    }
}
